Skip to content

gh-95865: Speed up urllib.parse.quote_from_bytes()#95872

Merged
sweeneyde merged 2 commits into
python:mainfrom
sweeneyde:quote_map
Aug 31, 2022
Merged

gh-95865: Speed up urllib.parse.quote_from_bytes()#95872
sweeneyde merged 2 commits into
python:mainfrom
sweeneyde:quote_map

Conversation

@sweeneyde

@sweeneyde sweeneyde commented Aug 11, 2022

Copy link
Copy Markdown
Member

Roughly 1.8x faster:

.\python.bat -m pyperf timeit -s "from urllib.parse import quote_from_bytes as f; b = b'A'*10_000 + b'='" "f(b)"

Before: Mean +- std dev: 570 us +- 6 us
After:  Mean +- std dev: 309 us +- 3 us

@mdboom mdboom added the performance Performance or resource usage label Aug 11, 2022
@sweeneyde sweeneyde requested a review from orsenthil August 30, 2022 18:43
Comment thread Lib/urllib/parse.py
return bs.decode()
quoter = _byte_quoter_factory(safe)
return ''.join([quoter(char) for char in bs])
return ''.join(map(quoter, bs))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very interesting.

@orsenthil orsenthil left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

performance Performance or resource usage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants